/**
 * @file Global.h
 *
 * This file defines the global parameters, variables, types.
 *
 * Has to be included by all the project files.
 *
 * @author Luc Fourestier
 * @date 2009
 */

#ifndef GLOBAL_H_
#define GLOBAL_H_

#include <stddef.h>

// Errors
#define OK 0				//! No error
#define ERROR -1			//! Generic error

// Debugging
//#define DEBUG				//!< Global debug switch
#ifdef DEBUG
//#define DEBUG_SR_PROFILING 		//!< Enable the SR profiling facilities
//#define DEBUG_SA_PROFILING 		//!< Enable the SA profiling facilities
//#define DEBUG_SP_PROFILING 		//!< Enable the SP profiling facilities
#endif

// Strings
#define MAX_NAME_LENGTH 256
#define IP_ADDR_LENGTH 16

// Print level
#define PRINT_LEVEL_BASIC 		0
#define PRINT_LEVEL_INTERMEDIATE 5
#define PRINT_LEVEL_ADVANCED 	10
#define PRINT_LEVEL_INTERNALS 	20
#define PRINT_LEVEL_FULL 		255

/**
 * Input/output type enumeration
 */
typedef enum InOutType_e
{
	Null,	//!< Discard
	File,	//!< File
	Tcp, 	//!< Tcp
	Udp, 	//!< Udp
	Std	    //!< stdout/stdin
} InOutType_t;

#endif /* GLOBAL_H_ */
